package it.dk.model;

import java.io.Serializable;
import java.util.Map.Entry;

/**
 * Classe che consente di gestire la entry contenente i dati su un punteggio
 * 
 * @param <K>	tipo per il nome del giocatore
 * @param <V>	tipo per il punteggiodel giocatore
 */
public class Score<K, V extends Comparable<V>> implements Entry<K, V>, Serializable{
	private static final long serialVersionUID = 1L;
	private V score;
	private K name;
	
	/**
	 * Costruttore della classe
	 * 
	 * @param scores	punti del giocatore
	 * @param name		nome del giocatore
	 */
	public Score(K name, V score) {
		super();
		this.score = score;
		this.name = name;
	}
	
	/**
	 * Metodo getter per i punti del giocatore
	 * 
	 * @return punti del giocatore
	 */
	public V getValue() {
		return score;
	}
	
	/**
	 * Metodo getter per il nome del giocatore
	 * 
	 * @return	nome del giocatore
	 */
	public K getKey() {
		return name;
	}

	/**
	 * Metodo setter per punti del giocatore
	 * 
	 * @param value	punti del giocatore
	 * @return		punti del giocatore
	 */
	public V setValue(V value) {
		score = value;
		return score;
	}
}
